Le modèle client-serveur est l'architecture fondamentale des applications distribuées. Elle n'est pas définie par le matériel, mais par une transaction logique entre deux processus : un client qui initie une demande pour une ressource, et un serveur qui la gère et la fournit.
1. La transaction en 4 étapes
Toute interaction suit une séquence rigoureuse : (1) Le client envoie une requête ; (2) Le serveur interprète et manipule les ressources locales ; (3) Le serveur envoie une réponse ; (4) Le client manipule les données reçues (par exemple, le rendu HTML).
2. Organisation matérielle
La communication repose sur la carte réseau, un périphérique d'entrée/sortie. Les données voyagent depuis le processeur à travers la pont d'entrée/sortie et bus système jusqu'à mémoire principale. Dans une requête web comme http://www.google.com:80, les paquets empruntent ces bus pour atteindre le code de l'application.
3. Abstraction de protocole
Les applications modernes utilisent Ordre des octets réseau (big-endian) pour assurer la cohérence. Des fonctions comme getaddrinfo fournissent mapping nom de domaine vers adresse IP tout en restant indépendantes du protocole.